Methods for Integrated Circuit Analysis

ABSTRACT

A simulation method for simulating a three-dimensional structure, comprises the steps of: discretizing the three-dimensional structure into two-dimensional (“2-D”) layers; constructing a two-dimensional basis for each of the 2-D layers; and constructing a one-dimensional finite difference basis between the 2-D layers.

CROSS REFERENCE

This application claims priority from a provisional patent application entitled “Accurate substrate analysis based on layered meshing with a novel correction method for numerical efficiency” filed on Apr. 19, 2011 and having an Application No. 61/477,145. Said application is incorporated herein by reference.

FIELD OF INVENTION

This invention generally relates to methods for integrated circuit analysis and, in particular, to methods for modeling electromagnetic circuits.

BACKGROUND

The effective resistance of a resistive mesh is a commonly used analogy for various scientific and engineering problems such as voltage drop estimation, substrate coupled noise, distributed control including time synchronization and sensor localization, determining the chemical distance among multiple bonds, and finding the distance between two vertices in a graph. Furthermore, resistive mesh networks are a commonly used structure in electronics to model different elements of an integrated circuit, such as a physical substrate, an integrated circuit layout, and a power distribution network. In particular, for an integrated circuit (“IC”), the electromagnetic interactions above the substrate can be described in a full-wave partial element equivalent circuit (“PEEC”) fashion. However, detailed analysis of the substrate structures, including substrate contacts, guard rings, diffusion layers, and other non-uniform materials, require three-dimensional (“3-D”) simulations of the substrate to achieve the required accuracy.

Due to their versatility, the finite difference method (“FDM”), the finite element method (“FEM”), and other methods of moments are popular methods for obtaining a mesh model (also referred to as a mesh) to represent electromagnetic circuits, including a substrate. However, for substrate modeling, these methods are not without their own serious challenges. For instance in FDM, FDM uses a finite difference basis to generate a uniform discretized mesh, which incurs substrate over-meshing. In addition, FDM yields unnecessarily dense grids far from contact sources. Thus, although FDM leads to a straightforward resistor network, the resulting matrix sizes are prohibitive due to the substrate size, which becomes a bottleneck in implementing the finite difference method. The finite element method does not require uniform meshes. Instead, FEM uses a finite element basis that requires a full 3-D basis, such as a tetrahedral, which leads to additional complexity.

These difficulties have led to the boundary element method (“BEM”). In BEM, only the contact surfaces need to be meshed, leading to far fewer unknowns than the other methods. BEM also requires that Green's function, which satisfies Poisson's equation for the substrate coupling problem, be determined. By enforcing the continuity of potential and normal current flow across layer boundaries, Green's function can be obtained analytically for cases with uniformity.

Generally, the evaluation of Green's function was limited to the top layer of a substrate. Thus, it allowed the contacts to be located only on the top substrate surface. In later developments, the evaluation of the Green's function was extended to handle arbitrarily located contacts in the substrate with the same boundary condition by enabling Green's function evaluation in any layer. In addition, Green's function can be applied to a two-layer substrate with perfect magnetic wall boundary conditions and to a multilayered substrate lying on the ground plane with perfect magnetic sidewalls and top surface.

However, even with the advancements in applying Green's function, the numerical computations of Green's function impose difficult challenges. If the substrate is given with different boundary conditions or has irregular layers with arbitrary variations in conductivity, a complete solution to derive the analytic Green's function does not currently exist. To overcome this, attempts were made to reduce the cost of FEM and FDM by eliminating a substantial fraction of the internal nodes, also referred to as network reduction. Examples of such network reduction techniques to simplify RC networks are a congruence transform, Voronoi polygons, and a combined BEM/FEM based network reduction method.

As a mixed technique, the combined BEM/FEM method solves separate problems in their own domains. In addition, BEM and FEM results are combined via the potentials in the interface nodes to take advantage of the versatility of BEM and FEM (which is cheaper for a regular structure). For the meshing requirement, the BEM mesh should be the dual of the triangular FEM mesh to enforce the constraint that the node along the interface is aligned. In practice, it is very difficult to enforce this meshing requirement since the nodes along the interface are typically not aligned. Current art does not provide any means to align the nodes for a more accurate mesh.

Therefore, it is desirable to present novel methods for electromagnetic circuit modeling, which corrects for the mismatched interface nodes in a mesh and reduces the amount of complexity of the mesh.

SUMMARY OF INVENTION

An object of this invention is to provide layered and adaptive meshing methods for extracting substrate impedance using a combination of FEM and FDM to represent a substrate.

Another object of this invention is to provide methods for expressing the potential at various points on panels of an electromagnetic circuit model using modified finite difference equations.

Yet another object of this invention is to provide synchronization methods that correct for nonaligned interface nodes of a mesh to satisfy the meshing requirement.

Briefly, the present invention discloses a simulation method for simulating a three-dimensional structure, comprising the steps of: discretizing the three-dimensional structure into two-dimensional (“2-D”) layers constructing a two-dimensional basis for each of the 2-D layers; and constructing a one-dimensional finite difference basis between the 2-D layers.

An advantage of this invention is that layered and adaptive meshing methods for extracting substrate impedance using a combination of FEM and FDM to represent a substrate are provided.

Another advantage of this invention is that methods for expressing the potential at various points on panels of an electromagnetic circuit model using modified finite difference equations are provided.

Yet another advantage of this invention is that synchronization methods that correct for nonaligned interface nodes of a mesh to satisfy the meshing requirement are provided.

DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects, and advantages of the invention can be better understood from the following detailed description of the preferred embodiment of the invention when taken in conjunction with the accompanying drawings in which:

FIG. 1 illustrates an example in which the current direction of a RWG basis is constructed in two dimensions.

FIG. 2 illustrates an example of a pulse basis constructed on two rectangular panels in two dimensions.

FIG. 3 illustrates an example for a three-dimensional basis case, where two triangular blocks T_(n)×h_(n) and T_(n)×h_(m) are stacked vertically.

FIG. 4 illustrates a circuit example that has four ports n₁, n₂, n₃, and n₄ (two of which are grounded) and three currents I₁, I₂, and I₃.

FIG. 5 illustrates two triangles on two different layers along the x-y plane, where the respective centroids of the two triangles do not match up (i.e., are not aligned along the z direction).

FIG. 6 illustrates a typical resistive mesh of the prior art based on a typical finite difference method.

FIG. 7 illustrates an example of a resistive mesh based on layered and adaptive meshing using a synchronization method of the present invention.

FIG. 8 illustrates a side view of an example of a wire with two contact ports on a top surface (not shown) at the ends of the wire.

FIG. 9 illustrates a top view of a top layer of a mesh that represents the wire illustrated in FIG. 8.

FIG. 10 illustrates a top view of a first substrate example, where the substrate has two square contact ports and a guard ring.

FIG. 11 illustrates a side perspective view of the first substrate example, illustrated in FIG. 10, divided into representative layers.

FIG. 12 illustrates a top view of a top layer of a mesh that represents the substrate illustrated in FIG. 10.

FIG. 13 illustrates a top view of a bottom layer of a mesh that represents the substrate illustrated in FIG. 10.

FIG. 14 illustrates a top view of a second substrate example.

FIG. 15 illustrates panels on two different layers along the x-y plane, where a via is vertically connected between the two layers.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following detailed description of the embodiments, reference is made to the accompanying drawings, which form a part hereof, and, in which, may be shown by way of illustration of specific embodiments in which the present invention may be practiced.

Although the operations of some of the disclosed methods are described in a particular order for convenient presentation, it should be understood that this manner of description encompasses rearrangement, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, the attached figures may not show the various ways in which the disclosed methods can be used in conjunction with other methods.

The disclosed technology can be used, for example, to analyze impedance effects on digital, analog, or mixed-signal integrated circuits. Furthermore, the disclosed technology can also be applied to any electromagnetic circuit or other scientific field of study, where FDM and FEM equations are used to for modeling. In particular, the main example provided below is to model parasitic impedance effects of a substrate. However, this is not meant to limit the present invention in any way. It can be appreciated that the present invention can be applied to any electromagnetic circuit or other scientific field of study, where FDM and FEM equations are used for modeling.

Any of the disclosed methods can be performed using software stored on a computer-readable medium and executed on a computer. Such software can comprise, for example, an electronic-design-automation (“EDA”) software tool used, for instance, for physical verification or synthesis. Such software can be executed on a single computer (e.g., any suitable commercially available computer) or on a networked computer (e.g., via the Internet, a wide-area network, a local-area network, a client-server network, or other such network). For clarity, software-based implementations are not described in detail since the disclosure enables a person having ordinary skill in the art to implement the methods of the present invention using a specific computer language, program, and/or computer. For the same reason, computer hardware is not described in detail.

In addition, any of the disclosed methods of the present invention can be used to generate a representation of the electrical characteristics of a circuit. The disclosed methods of the present invention can also be used to modify or design a circuit represented as circuit design information stored on computer-readable media. The circuit design information can comprise, for example, one or more design files or data structures (such as a GDSII or Oasis file) and can be created or modified on a single computer or via a network. Additionally, impedance information or any intermediate information determined using any of the disclosed methods may be stored in one or more data structures or design databases stored on computer-readable media.

The disclosed methods of the present invention can be used at one or more stages of an overall synthesis scheme. For example, any of the inductance extraction methods disclosed can be used during physical synthesis (e.g., during the physical verification process) in order to evaluate and improve the implemented design.

In the present invention, a finite difference method based on layered and adaptive meshing is presented to model an electromagnetic circuit, including to model substrate impedance. To allow for layered and adaptive meshing, a novel synchronization method is introduced which expresses the voltage potential at various points of panels by modifying the finite difference equations. Thereby, the high computational cost of the finite difference method due to tight uniform meshing requirements can be overcome with a straightforward implementation for handling of irregular/arbitrary substrate structures to extract the substrate coupling of integrated circuits.

An adaptive and layered simulation method of the present invention for simulating a three-dimensional structure, includes the steps of: discretizing the three-dimensional structure into two-dimensional (“2-D”) layers; constructing a two-dimensional basis (e.g., a finite element basis using a finite element method or a finite difference basis using a finite difference method) fir of the 2-D layers; and constructing a one-dimensional finite difference basis between the 2-D layers. The adjacent 2-D layers are connected to each other by the one-dimensional finite difference basis using a synchronization method to determine a synchronization voltage difference between any points on the panels that span across adjacent 2-D layers. The synchronization method includes the steps of: determining a centroid voltage difference between respective centroids of the panels that span across adjacent 2-D layers; determining a correction voltage; and determining the synchronization voltage difference based on the centroid voltage difference and the correction voltage. In this manner, the constructed 2-D layers can represent the three-dimensional structure for electromagnetic analysis.

Generally, the finite element method (“FEM”) is a numerical technique for finding approximate solutions of partial differential equations (“PDE”) as well as integral equations. FEM is characterized by the following process: a grid is chosen for a given domain (the grid can consist of triangles, squares, or other curvilinear polygons); then, a basis function is chosen (e.g., a piecewise linear basis functions, piecewise polynomial basis functions, or RWG basis); and with the basis function, a matrix form of the problem is obtained for analysis.

In addition, the finite difference method (“FDM”) is a numerical method for approximating the solutions to differential equations using finite difference equations. A finite difference is a mathematical expression of the form f(x+b)−f(x+a). FDM is characterized by the following process: a grid is chosen for given domain (the grid is restricted to handle rectangular shapes and simple alterations); then, a basis function is chosen, e.g., a pulse basis (generally, choices for the basis function are much more restricted than the FEM basis to derive a finite difference expression); and with this basis function, a matrix form of the problem is obtained for analysis. In some formulations, FDM can be considered a special case of the FEM approach. For instance, FEM with rectangular grids with simple basis functions may lead to the same matrix as one from FDM.

With respect to the present invention, to handle arbitrarily shaped contacts efficiently, the Rao-Wilton-Glisson (“RWG”) basis is constructed horizontally. Note that horizontal and horizontally can refer to a two-dimensional plane, e.g., the x-y plane, or a two-dimensional layer. Vertically, the pulse basis is used to take advantage of the layered character of a substrate. Note that vertical and vertically can refer to a third dimension, e.g., the z-direction, that is perpendicular to the two-dimensional plane. Even more so, vertically connected can refer to the perpendicular connection between two parallel planes.

Kirchhoff's voltage law for these bases naturally requires that the unknowns of the resulting matrix system are the voltages of centroids of panels. This constraint leads to uniform meshing across the different layers for the finite difference method, which incurs a prohibitively high computational cost. By introducing a one-dimensional synchronizing integration on the constructed RWG basis, uniform meshing can be avoided and substrate problems can be solved using the finite difference method on layered and adaptive meshing.

The synchronization method of the present invention allows for the removal of the meshing requirement of matching interface nodes. With the synchronization method, a combination FDM/FEM is developed to extract substrate impedance using a two-dimensional FEM and one-dimensional layered FDM. The layered FDM with synchronization allows layered and adaptive meshing which ensures the optimal number of voltage nodes, therefore avoiding the necessity of additional node reductions.

For electromagnetic problems, the most popular bases for the methods of moments are the Rao-Wilton-Glisson (“RWG”) basis and the pulse basis. The RWG basis is constructed using triangular panels. The RWG basis also removes the presence of an artificial line or point charges across the surface edges because the normal current component across the triangle edge is unity, which leads to superior accuracy.

The pulse basis is constructed using rectangular panels, and has a normal component of unity across the common edge shared by two rectangles. Although it lacks versatility, unlike the RWG basis constructed on triangles, the pulse basis performs more efficiently for path type geometry and gives good insights. For example, the resistance computed from the pulse basis is the regular resistance formula (length divided by cross-sectional area and sigma). Therefore, the RWG basis and the pulse basis can be adopted to take advantage of the versatility of the RWG basis and the simplicity of the pulse basis.

Constructing a Resistor Network

In constructing a resistor network, it is assumed that adaptive triangular meshes are given in the x-y plane and the meshes are copied across the z direction. Resistance formulas from the Rao-Wilton-Glisson basis in the x-y plane and from the pulse basis in the z direction are given to construct a resistor network. The voltage unknowns can be the values of the centroids of meshes for Kirchhoff's voltage law (“KVL”) equation.

To extract the substrate impedance, KVL and Kirchhoff's current law (“KCL”) are applied. In general, Kirchhoff's voltage law for a system can be represented by:

$\begin{matrix} {{\frac{\overset{\rightarrow}{J}(r)}{\sigma} + {j\; w{\int_{V}{{G_{A}\left( {r,r^{\prime}} \right)}{\overset{\rightarrow}{J}\ \left( r^{\prime} \right)}}}}} = {- {\nabla{\varphi (r)}}}} & \left( {1a} \right) \end{matrix}$

where {right arrow over (J)}(r) is a current density function, σ is an electrical conductivity, w is a frequency, j is an imaginary unit, G_(A) (r ,r^(/)) is a Green's function that characterizes the vector potential response at position r due to a current dipole excitation at r^(/), V is volume, and φ(r) is an electric potential function. For substrate analysis, w in Equation (1a) can be approximated by zero, thereby eliminating the integral term. Thus, KVL can be represented as

$\begin{matrix} {{\frac{\overset{\rightarrow}{J}(r)}{\sigma} = {- {\nabla{\varphi (r)}}}},} & \left( {1b} \right) \end{matrix}$

where {right arrow over (J)}(r) is the volume current density, σ is the conductivity, and φ(r) is the electric scalar potential.

The RWG basis is constructed horizontally to handle arbitrarily shaped contacts efficiently and the pulse basis is constructed vertically for the current density, {right arrow over (J)}(r). The RWG basis in two dimensions is constructed along each triangle edge.

FIG. 1 illustrates an example in which the current direction of the RWG basis is constructed in two dimensions. The normal current flux along the common edge of triangles T_(n) ⁺ and T_(n) ⁻ is unity, which removes an artificial line or point charge. The normal flux along the boundary edges are zero. The current direction of the RWG basis across the common edge of the two triangles T_(n) ⁺ and T_(n) ⁻ can start from a vertex s_(n) ⁺ of the triangle T_(n) ⁺ and end at a vertex s_(n) ⁻ of the triangle T_(n) ⁻. The current basis {right arrow over (f)}_(n)(s) is defined as

$\begin{matrix} {{{\overset{\rightarrow}{f}}_{n}(s)} = \left\{ \begin{matrix} {{\frac{l_{n}}{2A_{n}^{+}}\left( {\overset{\rightarrow}{s} - s_{n}^{+}} \right)},} & {s{\mspace{11mu} \;}i\; n\mspace{14mu} T_{n}^{+}} \\ {{\frac{l_{n}}{2A_{n}^{-}}\left( {s_{n}^{-} - \overset{\rightarrow}{s}} \right)},} & {s\mspace{14mu} i\; n\mspace{14mu} T_{n}^{-}} \\ {0,} & {otherwise} \end{matrix} \right.} & (2) \end{matrix}$

where l_(n) is the length of the common edge, A_(n) ^(±) are the areas of T_(n) ^(±), and s is a point coordinate defined with respect to a global coordinate origin O. The normal components of ({right arrow over (s)}−s_(n) ⁺) and (s_(n) ⁻−{right arrow over (s)}) on the common edge of T_(n) ^(±) are the heights of triangles T_(n) ^(±). Therefore, the normal component of the RWG basis is unity. Since there is no discontinuity in the normal current component along the edge, the RWG basis removes artificial line or point charges.

To account for the volumetric horizontal currents (e.g., in the x-y plane), it is assumed that the basis current flows uniformly in the x-y plane and is normalized by a cross-sectional area so that each basis function coefficient represents the actual filament current, {right arrow over (I)}(_(r)). Therefore, the new horizontal basis {right arrow over (m)}_(n)(r) is given as

$\begin{matrix} \begin{matrix} {{{{\overset{\rightarrow}{m}}_{n}(r)} = {{{\overset{\rightarrow}{f}}_{n}(s)}\frac{1}{l_{n}h_{n}}}},} & {r \in {{T_{n}^{\pm}(s)} \times h_{n}}} \end{matrix} & (3) \end{matrix}$

where l_(n) is the length of the n^(th) edge and h_(n) is the thickness of the layer along the z direction.

If the Galerkin method is applied to Equation (1b) with the basis {right arrow over (m)}_(n)(r), then {right arrow over (J)}(r) is approximated as

${\overset{\rightarrow}{J}(r)} \approx {\sum\limits_{m}{{{\overset{\rightarrow}{m}}_{m}(r)}.}}$

In addition, both sides of Equation (1b) can be integrated with {right arrow over (m)}_(n)(r) to obtain the resistance R_(n,m), thereby extracting the KVL equation as follows:

$\begin{matrix} \begin{matrix} {R_{n,m} = {\frac{1}{\sigma}{\int_{V}{{{{\overset{\rightarrow}{m}}_{n}(r)} \cdot {{\overset{\rightarrow}{m}}_{m}(r)}}\ {v}}}}} \\ {= {\sum\limits_{i,{j \in {\{ \pm \}}}}{\frac{1}{\sigma \; h}\frac{1}{4A_{n}^{i}A_{m}^{j}}{\int_{T_{n}^{i}\bigcap T_{m}^{j}}{{{\rho_{n}^{i}(s)} \cdot {\rho_{m}^{j}(s)}}\ {s}}}}}} \end{matrix} & (4) \end{matrix}$

where ρ_(n) ^(±)(s)=±({right arrow over (s)}−s_(n) ^(±)). Therefore, each current element is connected to at most five current elements including itself through the resistance since R_(n,m) equals to zero if the compact supports of {right arrow over (m)}_(n)(_(r)) and {right arrow over (m)}_(m)(r) are disjointed.

FIG. 2 illustrates an example of a pulse basis constructed on two rectangular panels in two dimensions. The compact supports of the basis are R_(n) ^(+, upper) and R_(n) ^(−, lower). The vertical pulse basis for the z direction can be constructed to take advantage of the layered character of the substrate. For clarity, the vertical pulse basis for two dimensions, illustrated in FIG. 2, can be generalized for three dimensions. When two rectangular panels R_(n) ⁺ and R_(n) ⁻ are stacked vertically, the pulse current flows uniformly in a single direction, starting from the middle of R_(n) ⁺ to the middle of R_(n) ⁻ so that the voltage node unknowns are located at the centers of the rectangular panels. Therefore, the pulse basis is defined as

$\begin{matrix} {{{\overset{\rightarrow}{f}}_{n}(s)} = \left\{ \begin{matrix} {\hat{z},} & {s\mspace{14mu} i\; n\mspace{14mu} R_{n}^{+ {,{upper}}}\mspace{14mu} {or}\mspace{14mu} R_{n}^{- {,{lower}}}} \\ {0,} & {{otherwise}.} \end{matrix} \right.} & (5) \end{matrix}$

where {circumflex over (z)} is (0,1).

FIG. 3 illustrates an example for a three-dimensional basis case, where two triangular blocks T_(n)×h_(n) and T_(n)×h_(m) are stacked vertically. A vertical pulse basis current {circumflex over (z)}_(n) can be constructed on two triangular blocks T_(n)×h_(n) and T_(n)×h_(m). The pulse basis current for the vertical current can then be defined as

$\begin{matrix} {{{\overset{\rightarrow}{m}}_{n}(r)} = \frac{\hat{z}}{{area}\left( T_{n} \right)}} & (6) \end{matrix}$

for r ε T (s)×h_(n) ^(upper) or T_(n)(s)×h_(m) ^(lower) where {circumflex over (z)} is (0,0,1).

Since the compact supports of the pulse basis currents are disjointed, the dot product of different pulse currents is zero. Therefore, a nonzero resistance can be obtained for self-interaction as

$\begin{matrix} \begin{matrix} {R_{n,n} = {\frac{1}{\sigma}{\int_{V}{{{{\overset{\rightarrow}{m}}_{n}(r)} \cdot {{\overset{\rightarrow}{m}}_{n}(r)}}\ {v}}}}} \\ {= {\frac{1}{2\sigma}{\frac{h_{n} + h_{m}}{{area}\left( T_{n} \right)}.}}} \end{matrix} & (7) \end{matrix}$

The dot product of a vertical pulse basis current and a horizontal RWG basis is zero. Thus, there is no other resistance except those computed in Equations (4) and (7). Therefore, the resistance formulas from the left hand side of Equation (1b) can be derived.

By defining r_(n) ^(c+) and r_(n) ^(c−) as the centroids of T_(n)×h_(n) and T_(n)×h_(m), it can be shown that the right side of Equation (1b) leads to the voltage difference between r_(n) ^(c+) and r_(n) ^(c−) if we apply the Galerkin method. With the RWG basis {right arrow over (m)}_(n)(r) defined on T_(n) ^(±)×h, the following is obtained

$\begin{matrix} \begin{matrix} {{- {\int_{V}{{{\nabla{\varphi (r)}} \cdot {{\overset{\rightarrow}{m}}_{n}(r)}}\ {v}}}} = {\int_{h}\ {{z}{\int_{T_{n}^{\pm}}{{\varphi (r)}{\nabla_{s}{\cdot {{\overset{\rightarrow}{m}}_{n}(r)}}}\ {s}}}}}} \\ {= {\int_{z}\ {{z\left( {{\int_{T_{n}^{+}}{\frac{\varphi (r)}{A_{n}^{+}h_{n}}\ {s}}} - {\int_{T_{n}^{-}}{\frac{\varphi (r)}{A_{n}^{-}h_{n}}\ {s}}}} \right)}}}} \\ {\cong {{\varphi \left( r_{n}^{c +} \right)} - {{\varphi \left( r_{n}^{c -} \right)}.}}} \end{matrix} & (8) \end{matrix}$

Here, the fact of the normal current flux on the surface boundary of T_(n) ^(±)×h equals to zero can be used.

The pulse basis {right arrow over (m)}_(n)(r), whose compact support is T_(n)(s)×h_(n) ^(upper) and T_(n)(s)×h_(m) ^(lower), gives

$\begin{matrix} \begin{matrix} {{- {\int_{V}{{{\nabla{\varphi (r)}} \cdot {{\overset{\rightarrow}{m}}_{n}(r)}}\ {v}}}} = {- {\int{\frac{1}{{area}\left( T_{n} \right)}{x}{y}{\int_{z}{\frac{\partial\varphi}{\partial z}\ {z}}}}}}} \\ {\cong {{\varphi \left( r_{n}^{c +} \right)} - {{\varphi \left( r_{n}^{c -} \right)}.}}} \end{matrix} & (9) \end{matrix}$

Therefore, the following KVL representation can be obtained from Equation (1b) as the following:

$\begin{matrix} {{\sum\limits_{m}{R_{n,m}I_{m}}} = {{\varphi \left( r_{n}^{c +} \right)} - {{\varphi \left( r_{n}^{c -} \right)}.}}} & (10) \end{matrix}$

Extracting the Y Parameter

In this section, KVL and KCL are used to extract impedance from contacts to contacts of a substrate. In order to reduce the computational costs in the bottom layers for a mesh, an adaptive triangular meshing method on each layer of the substrate can be used that is varied depending on the distance from the contacts to each respective layer. However, since the triangles of each of the layers do not match vertically, a synchronization method of the present invention is introduced to correct for the voltage difference between different triangles of the mesh along the z direction. In this manner, a strategy of a two-dimensional FEM and a one dimensional FDM can be implemented to solve a three-dimensional substrate problem. Finally, in order to show the accuracy of the synchronization method of the present invention, numerical resistance values of a thin wire computed with and without the synchronization method are compared to the approximate analytical value and compared to the computed resistance value from uniform meshing. Additionally, two numerical examples of a substrate problem are presented for comparison of a synchronization method of the present invention to the approximate analytical value and the computed resistance value from uniform meshing.

In order to understand how to stamp the resistance derived above into a system to extract impedance, a simple circuit example can be used for instructional purposes. It is appreciated that the methods of the present invention can also be used to extract impedance values for other circuits of greater or lesser complexity as well. FIG. 4 illustrates a circuit example having four ports n₁, n₂, n₃, and n₄ with three currents I₁, I₂, and I₃. Ports n₁ and n₃ can be grounded. KVL of Equations (1b) and (10), KCL, and contact ports can be stamped into a matrix system, and represented by a matrix equation. Since the voltage values of ports n₁ and n₃ are given, then the currents in the circuit can be computed by enforcing KVL and KCL via a Matrix Equation (11). The first three rows of the Matrix Equation (11) represent KVL, and the next four rows represent KCL. The last two rows of the Matrix Equation (11) represent stamping ports into an equation.

$\begin{matrix} {{\begin{bmatrix} R_{1} & 0 & 0 & {- 1} & 1 & 0 & 0 & 0 & 0 \\ 0 & R_{2} & 0 & 0 & {- 1} & 1 & 0 & 0 & 0 \\ 0 & 0 & R_{3} & 0 & {- 1} & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ {- 1} & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & {- 1} & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & {- 1} & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \end{bmatrix}\begin{bmatrix} I_{1} \\ I_{2} \\ I_{3} \\ V_{n_{1}} \\ V_{n_{2}} \\ V_{n_{3}} \\ V_{n_{4}} \\ I_{n_{1g}} \\ I_{n_{3g}} \end{bmatrix}} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ V_{n_{1}} \\ V_{n_{3}} \end{bmatrix}} & (11) \end{matrix}$

Voltages and currents are unknowns of the assembled matrix system in Equation (11). Thus, SPICE simulations are not used. Instead, resistance represents resistance between current elements of the discretized mesh. After solving the matrix system, currents and voltages can be obtained on each current element on the meshed geometry, while exciting one contact port and keeping all the other ports grounded. By measuring the current amounts on the ports, an admittance matrix Y between contacts on the substrate can be obtained to satisfy I=YV, where Y is an n×n element matrix and where n is the total number of ports.

Synchronization Theory Based on One-Dimensional Integration

For a real application, meshing needs to be adaptive to avoid unnecessarily dense meshing far from source contacts. Therefore, triangles on different layers of the mesh will have centroids not matched along the z direction. To remedy the difference, a synchronization method of the present invention can be used to account for the centroids not matching up along the z direction.

FIG. 5 illustrates two triangles on two different layers along the x-y plane, where the respective centroids of the two triangles do not match up (i.e., are not aligned along the z direction). Other triangles can be present in the x-y plane to cover an entire bounded area, where their respective centroids may not match up along the z direction between the other triangles of two layers.

By constructing the pulse basis from triangles of one layer to another layer, the following voltage equation can be obtained:

R _(n,n) I _(n)=φ(C _(b))−φ(M _(s)).   (12)

Referring to the example illustrated in FIG. 5, the pulse basis is from a triangle T1 on the bottom layer to a triangle T2 on the top layer. Thus, the pulse basis is constructed on the two triangles T1 and T2, where the respective centroids of the triangles T1 and T2 are not aligned along the z direction.

Since the centroids are not aligned along the z direction, Equation (12) cannot be easily enforced since the voltage unknowns are values for the centroids of the triangles Ti and T2. However, Equation (12) can be modified as follows to handle such cases,

R _(n,n) I _(n)=φ(C _(b))−φ(C _(s))+φ(C _(s))−φ(M _(s)),   (13)

where the term φ(C_(s))−φ(M_(s)) can be referred to as a correction voltage. Equation 13 can be referred to as a synchronization voltage difference having two components, the centroid voltage difference and a correction voltage. The correction voltage, φ(C_(s))−φ(M_(s)), can be computed with a one-dimensional integral as follows inside of the small triangle,

$\begin{matrix} {{{\varphi \left( C_{s} \right)} - {\varphi \left( M_{s} \right)}} = {{- {\int_{C_{s}}^{M_{s}}{{\nabla{\varphi (r)}} \cdot \ {l}}}} = {\int_{C_{s}}^{M_{s}}{\frac{\overset{\rightarrow}{J}(r)}{\sigma} \cdot \ {{l}.}}}}} & \left( {14a} \right) \end{matrix}$

The horizontal current {right arrow over (J)}(r) is the sum of the RWG basis constructed along the edges. In general, each triangle has three currents associated with it. Synchronization requires at most three line integrals of the RWG basis whose formula is given as follows,

$\begin{matrix} \begin{matrix} {{\int_{C_{s}}^{M_{s}}{{{\overset{\rightarrow}{m}}_{n}(r)}\ {l}}} = {{\int_{C_{s}}^{M_{s}}{{{\overset{\rightarrow}{f}}_{n}(r)}{\frac{1}{l_{n}h_{n}} \cdot {l}}}} = {\frac{1}{2A_{n}^{\pm}h_{n}}{\int_{C_{s}}^{M_{s}}{\rho_{n}^{\pm} \cdot {l}}}}}} \\ {= {\frac{1}{2A_{n}^{\pm}h_{n}}{\int_{C_{s}}^{M_{s}}{{\pm \left( {r^{\prime} - r_{n}} \right)} \cdot {l}}}}} \\ {= {\frac{1}{2A_{n}^{\pm}h_{n}}{\int_{0}^{1}{{\left( {{t\left( {{Ms} - C_{s}} \right)} + C_{s} - r_{n}} \right) \cdot \left( {M_{s} - C_{s}} \right)}{t}}}}} \\ {= {{\frac{1}{2A_{n}^{\pm}h_{n}}\left\lbrack {\frac{{{M_{s} - C_{s}}}^{2}}{2} + {\left( {C_{s} - r_{n}} \right) \cdot \left( {M_{s} - C_{s}} \right)}} \right\rbrack}.}} \end{matrix} & (15) \end{matrix}$

In this manner, the synchronization term modifies the traditional finite difference equations without increasing the matrix size.

In summary, layered FDM using a synchronization method of the present invention effectively reduces a resistor network from a uniform meshing, e.g., the resistor network illustrated in FIG. 6, into a reduced resistor network, e.g., the resistor network illustrated in FIG. 7, without sacrificing accuracy when the bottom nodes of the mesh are redundant. FIG. 6 illustrates a typical resistive mesh of the prior art based on a typical finite difference method. Nodes require uniform node arrangement, which translates into uniform meshing. FIG. 7 illustrates an example of a resistive mesh of the present invention based on a finite difference method using a synchronization method of the present invention. The synchronization method of the present invention allows for the freedom of choice of node locations. Thus, the resistor network illustrated in FIG. 7 has an adaptive layered meshing.

For a general electromagnetic modeling engine, inductance and resistance are computed from current elements which require synchronization of the panels of a model. To aid in the understanding of the invention, an assumption is made that there are N_(f) full current elements, N_(h) edge current elements (h stands for half), and N_(q) charge elements. The relationship, N_(c)=N_(f)+N_(h), is the total number of current elements. Assuming the unknowns are current density on current elements (“J”), charge density on charge elements (“Q”), voltages on charge elements and circuit nodes (“V ”), and voltage sources on certain circuit nodes (“V_(s)”), the matrix format for the system equations is:

$\begin{matrix} {{\begin{bmatrix} {- \left( {R + {{j\omega}\; L}} \right)} & {P_{LQ}\Phi} & P_{LV} \\ S & {j\omega} & 0 \\ P_{VJ} & 0 & P_{VV} \end{bmatrix}\begin{bmatrix} J \\ Q \\ V \end{bmatrix}} = \begin{bmatrix} 0 \\ 0 \\ V_{S} \end{bmatrix}} & (16) \end{matrix}$

The first row represents the N_(f) equations for full current elements and N_(h) equations for edge current elements. R is a diagonal matrix whose diagonal value is the resistance of the current element. L is the inductance matrix representing the inductive couplings among N_(c) current elements. The computation of the inductance matrix uses the multilayered vector potential Green's function, with each element calculated as:

$\begin{matrix} {L_{ij} = {\frac{1}{T_{L}}{\int_{Ci}{\int_{Cj}{{G_{A}\left( {r,r^{\prime}} \right)}\ {r}\ {r^{\prime}}}}}}} & (17) \end{matrix}$

where T_(L) is the scaling factor used in inductance computation and Ci Cj are the volumes of the observation current element and source current element respectively. For 3-D conductive elements, T_(L) is the product of cross section areas of both conductive elements. Φ is the scalar potential matrix, with each element calculated as:

$\begin{matrix} {\Phi_{ij} = {\frac{1}{T_{\varphi}}{\int_{Qi}{\int_{Qj}{{G_{\varphi}\left( {r,r^{\prime}} \right)}\ {r}\ {r^{\prime}}}}}}} & (18) \end{matrix}$

where T₁₀₀ is the scaling factor used in scalar potential integral computation, and Qi and Qj are the areas of the observation charge element and source charge element, respectively. T_(φ) is typically the area of the observation (corresponding to the i charge element) element. Q is the unknown coefficients for charge distribution, and thus ΦQ is the scalar potential, or voltage, on the charge elements due to the existence of Q charges. P_(LQ) is the incidence matrix that indexes each current element equation to the voltage of the overlapping charge element. Similarly, P_(LV) is the incidence matrix that indexes each current element equation to the voltage of the nodes that the edge current element is connected. Notice that although the equations are expressed in a matrix format, the actual implementation uses a stamping method that searches for the indices of the equation and indices of unknowns.

The second row represents the equations related to charge conservation. S is the incidence matrix that indexes the current elements that either flow into or flow out of the charge element.

The third row represents the equations related to node voltages and auxiliary equations for modified nodal analysis. For example, the edge current element is typically connected to a circuit node. Thus, an equation is obtained that makes the total current flowing out of the circuit node, including the current flowing out of the node and flowing into the edge current element, zero. P_(VJ) and P_(VV) are the two incidence matrix to index the corresponding edge currents and node voltages to the KCL equation.

Inductance can be accounted for by starting with Equation (1a), and thereby obtaining the following equation:

$\begin{matrix} \begin{matrix} {{{\varphi \left( C_{s} \right)} - {\varphi \left( M_{s} \right)}} = {- {\int_{C_{s}}^{M_{s}}{{\nabla{\varphi (r)}} \cdot \ {l}}}}} \\ {= {\int_{C_{s}}^{M_{s}}{\left\lbrack {\frac{\overset{\rightarrow}{J}(r)}{\sigma} + {j\; w{\int_{V}{{G_{A}\left( {r,r^{\prime}} \right)}{\overset{\rightarrow}{J}\left( r^{\prime} \right)}}}}} \right\rbrack \  \cdot {{l}.}}}} \end{matrix} & \left( {14b} \right) \end{matrix}$

FIG. 15 illustrates panels on two different layers along the x-y plane, where the panels of the layers are connected by a via. Panels on different layers are vertically connected by a via, a current pulse, or other connection, e.g., a via is perpendicular to both the panels to which it is connected. The via starts from point M⁺ on a first layer to point M⁻ on a second layer, where the resistance is R₄ and the current density is J₄. The points V₁, V₂, V₃, and V₄ are the centroids for their respective panels. The various resistances for the panels are R₁, R₂, R₃, R₅, R₆, and R₇; and the various current densities for the panels are J_(i), J₂, J₃, J₅, J₆, and J₇.

Before synchronization, the vertical current is not positioned from centroid to centroid. Thus, the following original equation for the voltage difference of the centroids is not entirely accurate:

$\begin{matrix} {{{R_{4}I_{4}} + {j\; w{\sum\limits_{j}{L_{4,j}I_{j}}}}} = {V_{2} - {V_{4}.}}} & (19) \end{matrix}$

where R₄ is the resistance of the vertical connection, I₄ is the current of the vertical connection, w is a frequency, j is an imaginary unit, L₄ is the inductance of the vertical connection, L_(4,j) is an inductance matrix, and I_(j) is a current matrix, V_(M+) is the voltage at the first point, and V_(M−) is the voltage at the second point.

By applying synchronization, the resistance and inductance matrices are altered giving,

$\begin{matrix} {{{R_{4}I_{4}} + {j\; w{\sum\limits_{j}{L_{4,j}I_{j}}}}} = {V_{M +} - {V_{M -}.}}} & (20) \end{matrix}$

where R₄ is the resistance of the vertical connection, I₄ is the current of the vertical connection, L₄ is the inductance of the vertical connection, V_(M+) is the voltage at the point M⁺, and V_(M−) is the voltage at the point M⁻.

To enforce Equation (16), the following is derived

$\begin{matrix} {{{R_{4}I_{4}} + {j\; w{\sum\limits_{j}{L_{4,j}I_{j}}}} - \left( {V_{M +} - V_{2}} \right) + \left( {V_{M -} - V_{4}} \right)} = {V_{2} - V_{4}}} & \left( {21a} \right) \end{matrix}$

Equation (21a) can be rewritten to give the following:

$\begin{matrix} {{{{R_{4}I_{4}} + {j\; w{\sum\limits_{j}\; {L_{4,j}I_{j}}}}} = {\left( {V_{2} - V_{4}} \right) + \left( {V_{M +} - V_{2}} \right) - \left( {V_{M -} - V_{4}} \right)}},} & \left( {21\; b} \right) \end{matrix}$

where R₄ is a resistance value of the vertical connection, I₄ is a current value of the vertical connection, w is a frequency, j is an imaginary unit, L₄ is an inductance value of the vertical connection, L_(4,j) is an inductance matrix, and I_(j) is a current matrix, V_(M+) is the voltage at the first point, and V_(M−) is the voltage at the second point, wherein

${R_{4}I_{4}} + {j\; w{\sum\limits_{j}\; {L_{4,j}I_{j}}}}$

is the synchronization voltage difference, (V₂−V₄) is a centroid voltage difference, (V_(M+)−V₂) and (V_(M−)−V₄) are correction voltages.

$\begin{matrix} {{V_{M +} - V_{2}} = {{R_{{M +},v_{2}}J_{2}} + {j\; w{\sum\limits_{j}\; {L_{{M +},v_{2},j}{J_{j}.}}}}}} & (22) \end{matrix}$

Therefore, the Equations (14b) and (16)-(18) can be manipulated to give the following equation,

$\begin{matrix} {{{R_{4}I_{4}} - {R_{{M +},v_{2}}J_{2}} + {R_{{M -},v_{4}}J_{6}} + {j\; w{\sum\limits_{j}\; {\left( {L_{4,j} - L_{{M +},v_{2},j} + L_{{M -},v_{4},j}} \right)I_{j}}}}} = {V_{2} - {V_{4}.}}} & (23) \end{matrix}$

Equation (23) can be applied to the cases where both points M+ and M− are not centroids of their respective panels. Accuracy of the Layered Finite Difference Method with Synchronization

To verify the accuracy of layered FDM using a synchronization method, a simple wire example, illustrated in FIG. 8, is presented. It is important to note that the methods of the present invention can be used for any integrated circuit or substrate structure. The substrate example illustrated in FIG. 8 is for illustrative purposes, and is not meant to limit the present invention in any way.

FIG. 8 illustrates a side view of an example of a wire. The wire can have two contact ports on the wire's top surface (not shown on this side view of the wire). The two contact ports are positioned at the ends of the wire. The wire's width, length, and thickness are 10.2 μm, 101.2 μm, and 1 μm, respectively.

FIG. 9 illustrates a top layer of mesh that represents a portion of the wire illustrated in FIG. 8. A mesh can be used to derive an approximate analytic resistance value. Two contact ports are constructed at 0.1 μm inward from the end of the line, and each have a width and length of 10 μm and 1 μm, respectively. Along the z direction, the wire is discretized into five layers to incur synchronization operations. Each layer has a varied density along the x-y plane based on the distance of the respective layer from the source contacts. The mesh layer that represents the source contacts is densest, and the mesh layers become sparser as the mesh is farther away from the contacts. The height of each of the mesh layers along the z direction is given by Equation (24),

$\begin{matrix} {h_{i} = {{\cos \left( {\left( {1 - \frac{i}{Nz}} \right)\frac{\pi}{2}} \right)} \times 1\left( {\mu \; m} \right)}} & (24) \end{matrix}$

where Nz=4 and i=0,1, . . . ,4.

An approximate analytic resistance between the contact ports when σ equals to 1000 (Sm⁻¹) is computed as follows:

$\begin{matrix} {R_{12} = {\frac{100\mspace{14mu} \mu \; m}{10000\; {{Sm}^{- 1} \cdot 1}\mspace{14mu} {{\mu m} \cdot 10.2}\mspace{14mu} {\mu m}} = {9804{(\Omega).}}}} & (25) \end{matrix}$

Table 1 lists the numerical resistance R₁₂ of adaptive meshing along the z direction between two contact ports placed on the ends of the wire. The approximate analytic value of R₁₂ is 9804 Ω. Table 1 presents comparisons between the accuracy with and without a synchronization method of the present invention, while having exactly the same adaptive meshes along the z direction. The approximate triangle areas on contacts are controlled as 5e-12, 2e-12, 1e-12, and 5e-13 respectively to decrease the meshing space. Triangle numbers for top layers h₃ and h₄ are 184, 341, 574, and 1328 and the numbers for h₀-h₂ are 140, 324, 620, and 1108 for the varying contact area constraints above.

The second column of Table 1 shows the maximum of synchronization lengths that is the longest distance between C_(s) and M_(s) illustrated in FIG. 5. A two-by-two admittance matrix for a two port problem can be obtained, and the resistance R₁₂ is computed from Y₁₂. The resistance R₁₂ on the third column of Table 1 computed with the synchronization method of the present invention matches very well with the expected analytic resistance computed above. The resistance R₁₂ computed without synchronization shown on the fourth column in Table 1 is far off from the analytic value of 9804 Ω.

TABLE 1 Maximum of The number Synchronization R₁₂ (Ω) with R₁₂ (Ω) without of unknowns N length synchronization synchronization 2254 5.2 μm 10140 7758 4853 5.0 μm 9878 7435 8991 5.9 μm 9857 7234 17526 5.0 μm 9833 8214

Without synchronization, the mesh is very inaccurate, leading to the random behavior in terms of convergence. Table 2 is generated by copying the top meshing all the way down to have a uniform meshing along the z direction with the same area control applied on contacts as in Table 1. Thus, the meshes on each layer are identical to the top meshes generated in Table 1. In addition, the other parameters are the same as the parameters used to compute the values in Table 1.

TABLE 2 The number of R₁₂ (Ω) with uniform unknowns N meshing in z direction 2752 9929 5117 9872 8610 9855 19926 9833

Numerical Results of Substrate Examples

To show the efficiency of the layered FDM using a synchronization method of the present invention, the following two substrate examples are provided to illustrate how to apply the methods of the present invention. These two examples are in no way meant to limit the present invention. A person having ordinary skill in the art can appreciate that the methods of the present invention can be applied to various substrates, to various integrated circuits, and to various other fields that use meshes.

In the following, the resistances from the substrate examples with and without using a synchronization method of the present invention are compared to an approximate analytic value and the resistance from uniform meshing. The numerical tables for the simple substrate problem of size 300 μm×210 μm×300 μm are presented to show its convergence and the advantage in terms of memory usage and speed. Finally, a substrate example of size 4200 μm×4340 μm×300 μm is presented to show the voltage distribution and resistance between ports from layered finite difference method with synchronization.

a. First Substrate Example

FIG. 10 illustrates a top view of a first substrate example, where the substrate has two square contact ports and a guard ring. FIG. 11 illustrates a side perspective view of the first substrate example, illustrated in FIG. 10, divided into representative layers. In this first example, the substrate has two square contacts and one guard ring, where the substrate size is 300 μm×210 μm×300 μm having conductivity of 10 (Sm⁻¹).

To show the convergence of the admittance matrix for the three ports problem, Tables 3-6 are presented. Table 3 is generated by varying the area constraints along the x-y plane with a fixed number of discretizations along the z direction. Table 5 is generated by varying the number of discretizations along the z direction while keeping same area constraints on x-y plane. Mesh layers become sparser as the distance from the contacts is greater. With the adaptive mesh, the admittance matrix Y of size 3×3 is obtained. The maximum distance on which the synchronization method is applied to is in the third column, and the relative error of the Y matrix in the l^(∞) norm is presented on the fourth column. The relative error of the Y matrix is computed as follows

$\frac{\max_{i,j}{{{Y\left( {,j} \right)} - {Y_{sol}\left( {,j} \right)}}}}{\max_{i,j}{{Y_{sol}\left( {,j} \right)}}}$

and the resistance R_(ij) for i≠j is defined as

$\frac{- 1}{{real}\left( {Y\left( {,j} \right)} \right)}.$

Therefore, a small resistance value allows for large current amounts flowing out through the ports. These current amounts determine the relative error of the Y matrix. Therefore, for a very large resistance due to majority of current leaking into other ports, one might expect greater accuracy loss. The last column shows the resistance between the two square ports.

Tables 4 and 6 are generated by uniform meshing along the z direction in which the top meshing layer is copied along the z direction in the other layers. The mesh layers used to generate Tables 4 and 6 are the same as the top mesh layers generated adaptively for Tables 3 and 5. The number of triangles from the top layer to the bottom layer for generating the last row in Table 3 (where contact triangle area tolerance is le-12) are 20796, 20796, 20806, 19554, 14734, 11932, 10536, 8984, 5066, 3468, 3468, 3468, 3468, 3468, 3468, and 3468. The triangle numbers are fixed as 20796 for all the layers in Table 4. The exact solution to compare with can be found by uniform meshing along the z direction. For Tables 3 and 4, each layer has 34287 triangles for an exact solution with contact triangle area tolerance of 6e-13 and Nz=15. For Tables 5 and 6, top surfaces for all Nz have 4444 triangles with the fixed contact triangle area constraint as 5e-12 in the x-y plane.

FIG. 12 illustrates a top layer of a mesh that represents the substrate illustrated in FIG. 10. The number of unknowns N is 107453 and the number of discretizations along the z direction is 15.

FIG. 13 illustrates a bottom surface of a mesh to represent the substrate illustrated in FIG. 10. The number of unknowns N and the number of discretizations along the z direction are same as in FIG. 12.

Tables 3 and 4 show that adaptive meshing with synchronization achieves the similar relative error of Y matrix or convergence in the x-y plane to the uniform meshing with less than half of the unknowns from uniform meshing with decreasing synchronization length. In Tables 5 and 6, although both adaptive and uniform meshing show the convergence in the z direction, the convergence of adaptive meshing deteriorates with non-decreasing maximum of synchronization length.

Total computation time and memory usage to obtain the admittance matrix Y between contacts are presented in Tables 7-10. Tables 7 and 9 are from adaptive meshing; Tables 8 and 10 are generated with uniform meshing for comparison with adaptive meshing. The unknown numbers and the numbers of non-zeros of the assembled matrix from adaptive meshing are less than half of the numbers from uniform meshing. Additionally, the memory cost of lower triangular matrix and upper triangular matrix factorization (“LU”) inversion for adaptive meshing is three to four times less than uniform meshing.

Table 3 lists the numerical relative error of the admittance matrix Y and the resistance R₁₂ of the adaptive meshing along the z direction between two square contact ports on a substrate of size 300 μm×210 μm×300 μm having conductivity 10 (Sm⁻¹), as illustrated in FIGS. 10-13. The area constraints are varied along the x and y directions while keeping the same discretization number Nz of 15 along the z direction. An exact solution to compare with is generated by uniform meshing with contact triangle area tolerance of 6e-13 and Nz=15. The numbers of the triangles on the top surfaces are 327, 1299, 4444, and 20796 when contact area tolerances are 1e-10, 2e-11, 5e-12, and 1e-12, respectively. The resistance R₁₂ calculated by a commercially available field solver, e.g., HFSS from ANSOFT, is 2.950e4 Ω.

TABLE 3 Contact Maximum of Relative R₁₂ (Ω) triangle The number synchronization error of between two area of length admittance square contact tolerance unknowns N (μm) matrix Y ports 1e−10 6989 2.9e−5 4.7e−1 2.868e4 2e−11 30239 2.1e−5 1.1e−1 3.063e4 5e−12 107453 9.5e−6 5.6e−2 2.930e4 1e−12 498865 5.5e−6 5.9e−3 2.963e4

Table 4 lists the numerical relative error of the admittance matrix Y and the resistance R₁₂ of uniform meshing along the z direction for the same example used to calculate the results in Table 3. The meshes on each layer are identical to the top meshes generated in Table 3. In addition, the other parameters are the same as in Table 3.

TABLE 4 Contact Relative R₁₂ (Ω) triangle error of between two area The number of admittance square contact tolerance unknowns N matrix Y ports 1e−10 17352 3.4e−1 2.880e4 2e−11 69303 1.3e−1 2.958e4 5e−12 237465 4.8e−2 2.932e4 1e−12 1112415 4.5e−3 2.968e4

Table 5 lists the numerical relative error of the admittance matrix Y and the resistance R₁₂ of adaptive meshing along the z direction for the same example of Table 3. The discretization number Nz along the z direction is varied, while keeping the contact triangle area constrained as 5e-12 in x-y plane. An exact solution to compare with is generated by uniform meshing with Nz=160, where the approximate triangle areas on contacts controlled as 5e-12. The numbers of the triangles on the top surfaces are 4444 for all Nz. R₁₂ of HFSS is 2.950e4 Ω.

TABLE 5 Maximum of R₁₂ (Ω) synchronization Relative error between two The number length of admittance square Nz of unknowns N (μm) matrix Y contact ports 10 76247 9.5e−6 3.1e−1 3.334e4 20 140192 8.8e−6 8.8e−2 2.888e4 40 269475 1.1e−5 4.8e−2 2.873e4 80 527355 1.1e−5 2.6e−2 2.887e4 120 785491 1.1e−5 7.8e−3 3.093e4

Table 6 lists the numerical relative error of the admittance matrix Y and the resistance R₁₂ of uniform meshing along the z direction for the same example of Table 5. The meshes on each layer are identical to the top meshes generated in Table 5. In addition, the other parameters are same as the parameter used to generate Table 5.

TABLE 6 R₁₂ (Ω) Relative error between two The number of of admittance square contact Nz unknowns N matrix Y ports 10 159840 3.1e−1 3.336e4 20 315090 7.9e−2 2.886e4 40 625590 3.8e−2 2.860e4 80 1246590 4.9e−3 2.863e4 120 1867590 1.2e−3 2.862e4

Table 7 lists the computation time to obtain the admittance matrix Y to generate Table 3 from the substrate example illustrated in FIGS. 10-13. For Table 7, a single central processing unit (“CPU”) is used for matrix filling, and sixteen CPUs are used for matrix inversion. Contact area constraints are 1e-10, 2e-11, 5e-12 and 1e-12 while keeping Nz=15.

TABLE 7 The number The number Matrix Matrix of non-zeros The number of of filling time inversion in the matrix non-zeros in unknowns N (s) time (s) set up L + U 6989 0 0 35709 500249 30239 0 2 156531 3862737 107453 0 3 561572 19851091 498865 1 14 2606303 130069427

Table 8 lists the computation time to obtain the admittance matrix Y in generating Table 4 with uniform meshing along the z direction. In addition, the other parameters are same as the parameters used in Table 7.

TABLE 8 The number The number Matrix Matrix of non-zeros The number of of filling time inversion in the matrix non-zeros in unknowns N (s) time (s) set up L + U 17352 0 0 88560 2199654 69303 0 2 357363 15530689 237465 0 6 1227937 66914739 1112415 1 38 5759988 402536177

Table 9 lists the computation time to obtain the admittance matrix Y in generating Table 5 with adaptive meshing along the z direction. In this example, a single CPU is used for matrix filling, and sixteen CPUs are used for matrix inversion. Nz values are 10, 20, 40, 80, and 120, while keeping the contact triangle area tolerance as 5e-12.

TABLE 9 The number The number Matrix Matrix of non-zeros The number of of filling time inversion in the matrix non-zeros in unknowns N (s) time (s) set up L + U 76247 0 2 397058 10695503 140192 0 4 733930 31268094 269475 0 13 1414594 87742147 527355 1 40 2770028 255472197 785491 1 55 4126023 426990585

Table 10 lists the computation time to obtain the admittance matrix Y in generating Table 6 with uniform meshing along the z direction. The other parameters are same as the parameter for the example used in Table 9.

TABLE 10 The number The number Matrix Matrix of non-zeros The number of of filling time inversion in the matrix non-zeros in unknowns N (s) time (s) set up L + U 159840 0 4 818722 31286958 315090 0 11 1637152 103108954 625590 1 39 3274012 331863000 1246590 1 144 6547732 927325162 1867590 2 312 9821452 1588594646

b. Second Substrate Example

FIG. 14 illustrates a top view of a second substrate example with eight ports. The size of the substrate is 4200 μm×4340 μm×300 μm. The substrate model has eight contact ports, where three of the contact ports are labeled as p1, p2, p3. The values of Table 11 are generated using adaptive meshing of the present invention, and uniform meshing is used to generate the values of Table 12 for comparison. The resistances between p1 and p2 and between p2 and p3 ports are computed and listed in the last two columns of Tables 11 and 12. Computation time and memory usage are listed in Tables 13 and 14 for the adaptive and uniform meshing, respectively. Suitable parameters are chosen via empirical convergence tests. Triangle numbers for each layer are 47134, 47134, 43828, 43026, 40702, 27264, 17654, 14810, 12212, 9920, 9920, 9920, 9920, 9920, and 9920 for adaptive meshing for the second row in Table 11 when the contact triangle area constraint is 1e-10. Uniform meshing has 47134 triangles for each layer that is identical to the top meshing from adaptive meshing.

The resistance values are 1˜3% different between adaptive and uniform meshing when the contact area constraint is equal to 1e-10. As the contact triangle area constraint becomes 5e-11, the difference decreases to 1˜1.5%. For the same contact triangle area constraint, memory and time costs for generating an adaptive mesh to represent the second substrate example are at least two times less than the memory and time costs for generating a uniform mesh. When the substrate thickness gets larger, more time and memory advantages can be expected with the synchronization method of the present invention.

Table 11 lists the numerical relative error of the admittance matrix Y and the resistance R₂₃ with adaptive meshing along the z direction between two square contact ports on substrate of size 4200 μm×4340 μm×300 μm of conductivity 7.4 (Sm⁻). The area constraints are varied along the x and y directions while keeping the same discretization number Nz of 14 along the z direction. The resistance R_(ij) can be defined to be the resistance between ports pi and pj.

TABLE 11 Maximum of R₁₂ (Ω) R₂₃ (Ω) Contact The synchronization between two between two triangle number of length square contact square area unknowns N (μm) ports contact ports 1e−10 1125341 6.1e−5 4.703e4 5.157e3 5e−11 2219544 4.2e−5 4.803e4 5.275e3

Table 12 lists the numerical relative error of the admittance matrix Y and the resistance R₂₃ of uniform meshing along the z direction for the same example of Table 11. The mesh configuration for each layer is identical to the top meshes used to generate the values in Table 5. The other parameters are the same parameters used in generating the values listed in Table 11.

TABLE 12 R₁₂ (Ω) R₂₃ (Ω) Contact The between two between two triangle number of square contact square contact area unknowns N ports ports 1e−10 2363590 4.744e4 5.299e3 5e−11 4627723 4.842e4 5.346e3

Table 13 lists the computation time to obtain the admittance matrix Y on the second substrate example for generating the values in Table 11 with adaptive meshing along the z direction. A single CPU is used for matrix filling and sixteen CPUs are used for matrix inversion. The contact area constraints are 1 e-10 and 5e-11, while keeping Nz=14.

TABLE 13 The number The number Matrix Matrix of non-zeros The number of of filling time inversion in the matrix non-zeros in unknowns N (s) time (s) set up L + U 1125341 3 112 5862338 241929893 2219544 5 265 11543488 605439946

Table 14 lists the computation time to obtain the admittance matrix to generate Table 12 with uniform meshing along the z direction. The other parameters are same as the parameters used to generate Table 13.

TABLE 14 The number The number Matrix Matrix of non-zeros The number of of filling time inversion in the matrix non-zeros in unknowns N (s) time (s) set up L + U 2363590 5 247 12205316 665398950 4627723 9 577 23905284 1483937069

While the present invention has been described with reference to certain preferred embodiments or methods, it is to be understood that the present invention is not limited to such specific embodiments or methods. Rather, it is the inventor's contention that the invention be understood and construed in its broadest meaning as reflected by the following claims. Thus, these claims are to be understood as incorporating not only the preferred methods described herein but all those other and further alterations and modifications as would be apparent to those of ordinary skilled in the art. 

1. A simulation method for simulating a three-dimensional structure, comprising the steps of: discretizing the three-dimensional structure into two-dimensional (“2-D”) layers; constructing two-dimensional basis for each of the 2-D layers; and constructing a one-dimensional finite difference basis between the 2-D layers.
 2. The method of claim 1 wherein the two-dimensional basis is a finite element basis.
 3. The method of claim 1 wherein the two-dimensional basis is a finite difference basis.
 4. The method of claim 1 wherein a first layer of the 2-D layers has a first panel with a first point and a second layer of the 2-D layers has a second panel with a second point, wherein the first point and the second point are vertically connected and the vertical connection is perpendicular to the first panel and the second panel, and wherein the one-dimensional finite difference basis uses a synchronization method to determine a synchronization voltage difference between the first point and the second point.
 5. The method of claim 4 wherein the synchronization method comprises the steps of: determining a centroid voltage difference between respective centroids of the first panel and the second panel; determining a correction voltage, wherein the correction voltage is the voltage difference between the first point and the centroid of the first panel; and determining the synchronization voltage difference based on the centroid voltage difference and the correction voltage.
 6. The method of claim 4 wherein the first point is not the centroid of the first panel and wherein the second point is the centroid of the second panel.
 7. The method of claim 4 wherein the vertical connection is a via.
 8. The method of claim 1 wherein the discretized 2-D layers are adaptively meshed.
 9. The method of claim 1 wherein the three-dimensional structure is an integrated circuit substrate.
 10. The method of claim 2 wherein the finite element basis is a Rao-Wilton-Glisson (“RWG”) basis.
 11. The method of claim 1 wherein the one-dimensional finite difference basis is a pulse basis.
 12. The method of claim 8 wherein the adaptive mesh of the discretized 2-D layers is a resistive and inductive mesh.
 13. The method of claim 4 wherein the synchronization voltage difference is given by: ${{{R_{4}I_{4}} + {j\; w{\sum\limits_{j}\; {L_{4,j}I_{j}}}}} = {\left( {V_{2} - V_{4}} \right) + \left( {V_{M +} - V_{2}} \right) - \left( {V_{M -} - V_{4}} \right)}},$ where R₄ is a resistance value of the vertical connection, I₄ is a current value of the vertical connection, w is a frequency, j is an imaginary unit, L₄ is an inductance value of the vertical connection, L_(4,j) is an inductance matrix, and I_(j) is a current matrix, V_(M+) is the voltage at the first point, and V_(M−) is the voltage at the second point, wherein ${R_{4}I_{4}} + {j\; w{\sum\limits_{j}\; {L_{4,j}I_{j}}}}$ is the synchronization voltage difference, (V₂−V₄) is a centroid voltage difference, (V_(M+)−V₂) and V_(M)−V₄) are correction voltages.
 14. The method of claim 5 wherein the correction voltage is given by ${{{\varphi \left( C_{s} \right)} - {\varphi \left( M_{s} \right)}} = {{- {\int_{C_{s}}^{M_{s}}{{\nabla{\varphi (r)}} \cdot \ {l}}}} = {\int_{C_{s}}^{M_{s}}{\left\lbrack {\frac{\overset{\rightarrow}{J}(r)}{\sigma} + {j\; w{\int_{V}{{G_{A}\left( {r,r^{\prime}} \right)}{\overset{\rightarrow}{J}\left( r^{\prime} \right)}}}}} \right\rbrack \cdot \ {l}}}}}\ $ where C_(s) is a coordinate of the centroid of the first panel, M_(s) is a coordinate of the first point, φ(C_(s)) is an electric potential at the centroid of the first panel, φ(M_(s)) is an electric potential at the first point, {right arrow over (J)}(r) is a current density function, σ is an electrical conductivity, w is a frequency, j is an imaginary unit, and G_(A)(r,r^(/)) is a Green's function that characterizes the vector potential response at position r due to a current dipole excitation at r^(/).
 15. The method of claim 1 wherein a relative height for each of the 2-D layers is given by, $h_{i} = {\cos \left( {\left( {1 - \frac{i}{Nz}} \right)\frac{\pi}{2}} \right)}$ where Nz is the total number of 2-D layers and i ranges from 0 to the total number of 2-D layers.
 16. The method of claim 1 wherein the two-dimensional basis is an integral equation based basis from an integral equation in three dimensions.
 17. A simulation method for simulating a three-dimensional structure, comprising the steps of: discretizing the three-dimensional structure into two-dimensional (“2-D”) layers; constructing a two-dimensional finite element basis for each of the 2-D layers; and constructing a one-dimensional finite difference basis between the 2-D layers, wherein a first layer of the 2-D layers has a first panel with a first point and a second layer of the 2-D layers has a second panel with a second point, wherein the first point and the second point are vertically connected by a via and the vertical connection is perpendicular to the first panel and the second panel, wherein the one-dimensional finite difference basis uses a synchronization method to determine a synchronization voltage difference between the first point and the second point, and wherein the constructed two-dimensional finite element basis for each of the 2-D layers and the constructed one-dimensional finite difference basis between the 2-D layers form a layered and adaptive mesh.
 18. The method of claim 17 wherein the synchronization method comprises the steps of: determining a centroid voltage difference between respective centroids of the first panel and the second panel; determining a first correction voltage, wherein the first correction voltage is the voltage difference between the first point and the centroid of the first panel; determining a second correction voltage, wherein the second correction voltage is the voltage difference between the second point and the centroid of the second panel; and determining the synchronization voltage difference based on the centroid voltage difference, the first correction voltage, and the second correction voltage.
 19. A simulation method for simulating a three-dimensional structure, comprising the steps of: discretizing the three-dimensional structure into two-dimensional “2-D”) layers, wherein the discretized 2-D layers are adaptively meshed; constructing a two-dimensional Rao-Wilton-Glisson basis for each of the 2-D layers; and constructing a one-dimensional pulse basis between the 2-D layers, wherein a first layer of the 2-D layers has a first panel with a first point and a second layer of the 2-D layers has a second panel with a second point, wherein the first point and the second point are vertically connected by a via and the vertical connection is perpendicular to the first panel and the second panel, wherein the one-dimensional finite difference basis uses a synchronization method to determine a synchronization voltage difference between the first point and the second point, wherein the synchronization method comprises the steps of: determining a centroid voltage difference between respective centroids of the first panel and the second panel; determining a first correction voltage, wherein the first correction voltage is the voltage difference between the first point and the centroid of the first panel; determining a second correction voltage, wherein the second correction voltage is the voltage difference between the second point and the centroid of the second panel; and determining the synchronization voltage difference based on the centroid voltage difference, the first correction voltage, and the second correction voltage, wherein the synchronization voltage difference is given by: ${{{R_{4}I_{4}} + {j\; w{\sum\limits_{j}\; {L_{4,j}I_{j}}}}} = {\left( {V_{2} - V_{4}} \right) + \left( {V_{M +} - V_{2}} \right) - \left( {V_{M -} - V_{4}} \right)}},$ where R₄ is a resistance value of the vertical connection, I₄ is a current value of the vertical connection, w is a frequency, j is an imaginary unit, L₄ is an inductance value of the vertical connection, L_(4,j) is an inductance matrix, and I_(j) is a current matrix, V_(M+) is the voltage at the first point, and V_(M−) is the voltage at the second point, wherein ${R_{4}I_{4}} + {j\; w{\sum\limits_{j}\; {L_{4,j}I_{j}}}}$ is the synchronization voltage difference, (V₂−V₄) is a centroid voltage difference, (V_(M+)−V₂) and (V_(M−)−V₄) are correction voltages, and wherein a relative height for each of the 2-D layers is given by, $h_{i} = {\cos \left( {\left( {1 - \frac{i}{Nz}} \right)\frac{\pi}{2}} \right)}$ where Nz is the total number of 2-D layers and i ranges from 0 to the total number of 2-D layers.
 20. The method of claim 19 wherein the first point is not the centroid of the first panel and wherein the second point is not the centroid of the second panel. 